// import { message } from "@/utils/message";
// import { useEventListener } from "@vueuse/core";
// import { copyTextToClipboard } from "@pureadmin/utils";
import type { Directive, DirectiveBinding } from "vue";

interface CopyEl extends HTMLElement {
	copyValue: string;
}

/** 文本复制指令（默认双击复制） */
export const copy: Directive = {
	mounted(el: CopyEl, binding: DirectiveBinding) {
		const { value } = binding;
		if (value) {
			el.copyValue = value;
			// const arg = binding.arg ?? "dblclick";
			// Register using addEventListener on mounted, and removeEventListener automatically on unmounted
			// useEventListener(el, arg, () => {
			// 	const success = copyTextToClipboard(el.copyValue);
			// 	success ? message("复制成功", { type: "success" }) : message("复制失败", { type: "error" });
			// });
		} else {
			throw new Error('[Directive: copy]: need value! Like v-copy="modelValue"');
		}
	},
	updated(el: CopyEl, binding: DirectiveBinding) {
		el.copyValue = binding.value;
	},
};
